
package com.probiz.estore.customer.dao;

import java.util.Date;
import java.util.List;

import com.probiz.estore.common.model.customer.Customer;
import com.probiz.estore.core.search.SearchCriteria;
import com.probiz.estore.customer.model.CustomerSearchCriteria;
import com.probiz.estore.system.dao.AppUserDao;

/**
 * Customer Data Access Object (DAO) interface. Developer introduced interfaces
 * should be declared here. Won't get overwritten.
 */
public interface CustomerDao extends AppUserDao<Customer> {
	
	/**
	 * 搜索
	 * @param customerSearchCriteria
	 * @param searchCriteria
	 * @return
	 */
	public List<Customer> searchByCriteria(CustomerSearchCriteria customerSearchCriteria, SearchCriteria searchCriteria);
	/**
	 * 根据客户id获得客户实体
	 * @param appUserId
	 * @return
	 */
	public Customer getByAppUserId(Integer appUserId);

	/**
	 * 保存用户选择语言
	 * @param customerId
	 * @param preferredLanguage
	 */
	public void saveCustomerPreferredLanguage(Integer customerId,String preferredLanguage);

	
	public List<String> searchCustomerEmails(int pageNo, int pageSize, List<String> newsletterGroupIds);

	// forEai
	public List<Customer> findExportCustomer(Date lastExecuteTime);
	
	public List<Customer> getListByDeleted() ;

}
